﻿using System;
using System.Collections.Generic;
using System.Text;

namespace Common
{
    public enum EnumMonth
    {
        Januari = 1,
        Februari,
        Maret,
        April,
        Mei,
        Juni,
        Juli,
        Agustus,
        September,
        Oktober,
        November,
        Desember
    }

    public enum EnumTriwulan
    {
        I = 1, II, III, IV
    }

    public enum EnumSemester
    {
        I = 1, II
    }

    //public enum JenisPos
    //{
    //    Penerimaan = 1,
    //    Pengeluaran = 2,
    //    Pajak = 3,
    //    JumlahTotal = 4,
    //    TotalPajakDisetor = 5,
    //    TotalPengeluaran = 6,
    //    SisaDana = 7
    //}

    public enum TipePosRekening
    {
        NonPajak = 1,
        Pajak = 2
    }

    public enum JenisPajak
    {
        PPh21 = 112,
        PPh21PPn = 113,
        PajakLainnya = 114
    }

    public enum JenisPenerimaanDana
    {
        Awal = 100,
        Sisa = 99
    }

    public static class Enums
    {
        public static EnumMonth GetMonthByName(String name)
        {
            return (EnumMonth)Enum.Parse(typeof(EnumMonth), name);
        }

        public static EnumMonth[] GetMonthsByTriwulan(String triwulan)
        {
            EnumTriwulan enumTriwulan = GetTriwulanByName(triwulan);
            if (enumTriwulan == EnumTriwulan.I)
            {
                return new EnumMonth[] { EnumMonth.Januari, EnumMonth.Februari, EnumMonth.Maret };
            }
            else if (enumTriwulan == EnumTriwulan.II)
            {
                return new EnumMonth[] { EnumMonth.April, EnumMonth.Mei, EnumMonth.Juni };
            }
            else if (enumTriwulan == EnumTriwulan.III)
            {
                return new EnumMonth[] { EnumMonth.Juli, EnumMonth.Agustus, EnumMonth.September };
            }
            else if (enumTriwulan == EnumTriwulan.IV)
            {
                return new EnumMonth[] { EnumMonth.Oktober, EnumMonth.November, EnumMonth.Desember };
            }

            return new EnumMonth[] { };
        }

        public static int[] GetMonthNamesByTriwulan(string triwulan)
        {
            EnumMonth[] months = GetMonthsByTriwulan(triwulan);
            int[] monthValues = new int[months.Length];
            for (int i = 0; i < months.Length; i++)
            {
                monthValues[i] = (int)months[i];
            }
            return monthValues;
        }

        public static EnumTriwulan GetTriwulanByName(String name)
        {
            return (EnumTriwulan)Enum.Parse(typeof(EnumTriwulan), name);
        }

        public static EnumSemester GetSemesterByName(String name)
        {
            return (EnumSemester)Enum.Parse(typeof(EnumSemester), name);
        }

    }
}
